import Vue from 'vue'
import Vuex from 'vuex'
//引入左侧菜单字数
import app from "./modules/app"
import user from './modules/user'
import lang from './modules/lang'
//引入 getters
import getters from './getters'
//引入持久化插件
import createPersistedState from 'vuex-persistedstate';
Vue.use(Vuex)

export default new Vuex.Store({
  plugins:[createPersistedState()],
  getters,
  modules: { //添加子树
    app,user,lang
  }
})


/*
vue:用于做复杂项目中的状态的统一管理
功能：购物车 商品对象 左侧菜单状态 登录的状态 权限管理
vuex5大属性：
state状态、 
getters 派生状态、 对 页面中多个页面的同样的计算属性进行封装处理、
mutations 修改状态值、
actions 动作 提交mutation，一般可以做异步处理和大数据处理
modules 模块 添加子树
vuex4大辅助函数：masState、mapGetters、mapMutations、mapActions
vuex流程：
vuex和缓存的区别: vuex 响应式的， 但是刷新后会重置，缓存刷新后数据会保留
vuex 持久化处理 
*/